home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / SERIAL16.{AS < prev    next >
Text File  |  1999-09-17  |  5KB  |  176 lines

  1. /*
  2.  * serial167.h
  3.  *
  4.  * Richard Hirst [richard@sleepie.demon.co.uk]
  5.  *
  6.  * Based on cyclades.h
  7.  */
  8.  
  9. struct cyclades_monitor {
  10.         unsigned long           int_count;
  11.         unsigned long           char_count;
  12.         unsigned long           char_max;
  13.         unsigned long           char_last;
  14. };
  15.  
  16. /*
  17.  * This is our internal structure for each serial port's state.
  18.  * 
  19.  * Many fields are paralleled by the structure used by the serial_struct
  20.  * structure.
  21.  *
  22.  * For definitions of the flags field, see tty.h
  23.  */
  24.  
  25. struct cyclades_port {
  26.     int                     magic;
  27.     int                     type;
  28.     int            card;
  29.     int            line;
  30.     int            flags;         /* defined in tty.h */
  31.     struct tty_struct     *tty;
  32.     int            read_status_mask;
  33.     int            timeout;
  34.     int            xmit_fifo_size;
  35.     int                     cor1,cor2,cor3,cor4,cor5,cor6,cor7;
  36.     int                     tbpr,tco,rbpr,rco;
  37.     int            ignore_status_mask;
  38.     int            close_delay;
  39.     int            IER;     /* Interrupt Enable Register */
  40.     int            event;
  41.     unsigned long        last_active;
  42.     int            count;    /* # of fd on device */
  43.     int                     x_char; /* to be pushed out ASAP */
  44.     int                     x_break;
  45.     int            blocked_open; /* # of blocked opens */
  46.     long            session; /* Session of opening process */
  47.     long            pgrp; /* pgrp of opening process */
  48.     unsigned char         *xmit_buf;
  49.     int            xmit_head;
  50.     int            xmit_tail;
  51.     int            xmit_cnt;
  52.         int                     default_threshold;
  53.         int                     default_timeout;
  54.     struct tq_struct    tqueue;
  55.     struct termios        normal_termios;
  56.     struct termios        callout_termios;
  57.     struct wait_queue    *open_wait;
  58.     struct wait_queue    *close_wait;
  59.         struct cyclades_monitor mon;
  60. };
  61.  
  62. #define CYCLADES_MAGIC  0x4359
  63.  
  64. #define CYGETMON                0x435901
  65. #define CYGETTHRESH             0x435902
  66. #define CYSETTHRESH             0x435903
  67. #define CYGETDEFTHRESH          0x435904
  68. #define CYSETDEFTHRESH          0x435905
  69. #define CYGETTIMEOUT            0x435906
  70. #define CYSETTIMEOUT            0x435907
  71. #define CYGETDEFTIMEOUT         0x435908
  72. #define CYSETDEFTIMEOUT         0x435909
  73.  
  74. /*
  75.  * Events are used to schedule things to happen at timer-interrupt
  76.  * time, instead of at cy interrupt time.
  77.  */
  78. #define Cy_EVENT_READ_PROCESS    0
  79. #define Cy_EVENT_WRITE_WAKEUP    1
  80. #define Cy_EVENT_HANGUP        2
  81. #define Cy_EVENT_BREAK        3
  82. #define Cy_EVENT_OPEN_WAKEUP    4
  83.  
  84.  
  85.  
  86. #define CyMaxChipsPerCard 1
  87.  
  88. /**** cd2401 registers ****/
  89.  
  90. #define CyGFRCR         (0x81)
  91. #define CyCCR        (0x13)
  92. #define      CyCLR_CHAN        (0x40)
  93. #define      CyINIT_CHAN    (0x20)
  94. #define      CyCHIP_RESET    (0x10)
  95. #define      CyENB_XMTR        (0x08)
  96. #define      CyDIS_XMTR        (0x04)
  97. #define      CyENB_RCVR        (0x02)
  98. #define      CyDIS_RCVR        (0x01)
  99. #define CyCAR        (0xee)
  100. #define CyIER        (0x11)
  101. #define      CyMdmCh        (0x80)
  102. #define      CyRxExc        (0x20)
  103. #define      CyRxData        (0x08)
  104. #define      CyTxMpty        (0x02)
  105. #define      CyTxRdy        (0x01)
  106. #define CyLICR        (0x26)
  107. #define CyRISR        (0x89)
  108. #define      CyTIMEOUT        (0x80)
  109. #define      CySPECHAR        (0x70)
  110. #define      CyOVERRUN        (0x08)
  111. #define      CyPARITY        (0x04)
  112. #define      CyFRAME        (0x02)
  113. #define      CyBREAK        (0x01)
  114. #define CyREOIR        (0x84)
  115. #define CyTEOIR        (0x85)
  116. #define CyMEOIR        (0x86)
  117. #define      CyNOTRANS        (0x08)
  118. #define CyRFOC        (0x30)
  119. #define CyRDR        (0xf8)
  120. #define CyTDR        (0xf8)
  121. #define CyMISR        (0x8b)
  122. #define CyRISR        (0x89)
  123. #define CyTISR        (0x8a)
  124. #define CyMSVR1        (0xde)
  125. #define CyMSVR2        (0xdf)
  126. #define      CyDSR        (0x80)
  127. #define      CyDCD        (0x40)
  128. #define      CyCTS        (0x20)
  129. #define      CyDTR        (0x02)
  130. #define      CyRTS        (0x01)
  131. #define CyRTPRL        (0x25)
  132. #define CyRTPRH        (0x24)
  133. #define CyCOR1        (0x10)
  134. #define      CyPARITY_NONE    (0x00)
  135. #define      CyPARITY_E        (0x40)
  136. #define      CyPARITY_O        (0xC0)
  137. #define      Cy_5_BITS        (0x04)
  138. #define      Cy_6_BITS        (0x05)
  139. #define      Cy_7_BITS        (0x06)
  140. #define      Cy_8_BITS        (0x07)
  141. #define CyCOR2        (0x17)
  142. #define      CyETC        (0x20)
  143. #define      CyCtsAE        (0x02)
  144. #define CyCOR3        (0x16)
  145. #define      Cy_1_STOP        (0x02)
  146. #define      Cy_2_STOP        (0x04)
  147. #define CyCOR4        (0x15)
  148. #define      CyREC_FIFO        (0x0F)  /* Receive FIFO threshold */
  149. #define CyCOR5        (0x14)
  150. #define CyCOR6        (0x18)
  151. #define CyCOR7        (0x07)
  152. #define CyRBPR        (0xcb)
  153. #define CyRCOR        (0xc8)
  154. #define CyTBPR        (0xc3)
  155. #define CyTCOR        (0xc0)
  156. #define CySCHR1        (0x1f)
  157. #define CySCHR2     (0x1e)
  158. #define CyTPR        (0xda)
  159. #define CyPILR1        (0xe3)
  160. #define CyPILR2        (0xe0)
  161. #define CyPILR3        (0xe1)
  162. #define CyCMR        (0x1b)
  163. #define      CyASYNC        (0x02)
  164. #define CyLICR          (0x26)
  165. #define CyLIVR          (0x09)
  166. #define CySCRL        (0x23)
  167. #define CySCRH        (0x22)
  168. #define CyTFTC        (0x80)
  169.  
  170.  
  171. /* max number of chars in the FIFO */
  172.  
  173. #define CyMAX_CHAR_FIFO    12
  174.  
  175. /***************************************************************************/
  176.